﻿using LinkyPOS.Class;
using Microsoft.Win32;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;

namespace LinkyPOS
{
    public partial class KayitKabul : Form
    {
        public KayitKabul()
        {
            InitializeComponent();
        }
        musteriler2 m = new musteriler2();
        siparisler2 s = new siparisler2();
        urun u = new urun();
        Siparisdetaylari sp = new Siparisdetaylari();
        string tip = "";
        ArrayList urunlistesi = new ArrayList();
        ArrayList desc = new ArrayList();
        private void veritabaniyedekle()
        {
          
            try
            {
                 string backuptype="";
                try
                {
                    string date = DateTime.Now.ToString("s").Replace(':','-');
                    backuptype = Registry.CurrentUser.OpenSubKey("LinkyControl").OpenSubKey("LinkyPOS").GetValue("backuptype").ToString();
                    SqlConnection sqlcon = connection.baglanti;
                    SqlCommand sqlcmd = new SqlCommand("BACKUP DATABASE linkypos TO DISK='D:\\linkyyedekler\\" + date + "linkypos.bak' with description='fark', name='linkypos', differential ", sqlcon);
                    sqlcon.Open();
                    sqlcmd.ExecuteNonQuery();
                    sqlcon.Close(); 
                }
                catch (Exception)
                {
                    SqlConnection sqlcon = connection.baglanti;
                    SqlCommand sqlcmd = new SqlCommand("BACKUP DATABASE linkypos TO DISK='D:\\linkyyedekler\\linkypos.bak'", sqlcon);
                    sqlcon.Open();
                    sqlcmd.ExecuteNonQuery();
                    sqlcon.Close();
                    Registry.CurrentUser.CreateSubKey("LinkyControl").CreateSubKey("LinkyPOS").SetValue("backuptype", "full");
                   
                }

                          
            }
            catch (Exception)
            {
                MessageBox.Show("Veri tabanı yedekleme konusunda bir problem yaşanıyor /n  Lütfen Program satıcınız ile görüşün /n Bu hatayı Görmezden Gelip Kaydınıza devam edebilirsiniz  ");
            }

        }

        private void KayitKabul_Load(object sender, EventArgs e)
        {
           
        

            this.Location = new Point(0, 0);
            this.Size = Screen.PrimaryScreen.WorkingArea.Size;
            try
            {
                lblSipariskodu.Text = panel.magazakodu + "-0000";
                string gelenkod = siparisler2.sonsipariskodu();
                string[] dizi = gelenkod.Split('-');
                int i = Convert.ToInt32(dizi[1]) + 1;
                s.Sipariskodu = panel.magazakodu + "-" + i.ToString();
                lblSipariskodu.Text = "Sipariş No = " + s.Sipariskodu;

            }
            catch (Exception d)
            {
                err2 er = new err2(d.ToString(), this.Name);
                MessageBox.Show("Bilgisayar Kaynaklı Bir hata oluştu /n Form kapatılacak lütfen kayıt ekranını yeniden açınız");
                this.Close();
            }
            finally 
            {
                if (Convert.ToInt32(Registry.CurrentUser.OpenSubKey("LinkyControl").OpenSubKey("LinkyDay").GetValue("backup")) == 1)
                {
                    CheckForIllegalCrossThreadCalls = false;
                    ThreadStart tst = new ThreadStart(veritabaniyedekle);
                    Thread t2 = new Thread(tst);
                    t2.Start();
                }
            
            // ayri bir tread icersinde  anlik kasa bilgisini sisteme atacak 
            // bunu yaparken ken imzasini kullanacak imza ayarlamasi yapacak ve ve imza sifresini sisteme atacakbir databse bolumu yapmaliyiz
            // butun bunlari webraporlari sinifindan turetecek

           

            }


        }

        private void KayitKabul_LocationChanged(object sender, EventArgs e)
        {
            this.Location = new Point(0, 0);
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            if (txtisim.Text!="")
            {

                List<musteriler2> mst = musteriler2.musterlikegetir(txtisim.Text);

                foreach (var item in mst)
                {
                    listBox1.Items.Add(item.MusteriID+"-"+item.Isim+" "+item.Soyisim);
                }
                listBox1.Visible = true;
            }
            else
            {
                listBox1.Visible = false;
            }
         

        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                string secilensatir = listBox1.SelectedItem.ToString();
                string[] dizi = secilensatir.Split('-');
                m.MusteriID = Convert.ToInt32(dizi[0]);
                m.musterigetir();
                txtisim.Text = m.Isim;
                txtSoyisim.Text = m.Soyisim;
                txtTelefon.Text = m.Telefon;
                txtEposta.Text = m.Eposta;
                lblMusteriID.Text = "Musteri ID=" + m.MusteriID.ToString();

            }
            catch (Exception d)
            {

                err2 er = new err2(d.ToString(), this.Name);

            }


        }
        // Takım Elbise Temizleme Butonu
        private void button88_Click(object sender, EventArgs e)
        {
            boyaf(1);






        }
        // Takım Elbise Ütü Butonu
        private void button59_Click(object sender, EventArgs e)
        {
            utuf(1);
        }
        //ceket fiyatlari temizleme
        private void btnCeket_Click(object sender, EventArgs e)
        {
            temizlikf(2);
        }
        // cekete fiyatlari ütü
        private void button58_Click(object sender, EventArgs e)
        {
            utuf(2);
        }

        private void button83_Click(object sender, EventArgs e)
        {
            boyaf(6);
        }

        private void button87_Click(object sender, EventArgs e)
        {
            boyaf(2);
        }

        private void btnPantalon_Click(object sender, EventArgs e)
        {
            temizlikf(3);
        }

        private void paltoT_Click(object sender, EventArgs e)
        {
            temizlikf(4);
        }

        private void gelinlikT_Click(object sender, EventArgs e)
        {
            temizlikf(5);
        }

        private void montT_Click(object sender, EventArgs e)
        {
            temizlikf(6);
        }

        private void kaztuyuT_Click(object sender, EventArgs e)
        {
            temizlikf(7);
        }

        public void temizlikf(int id)
        {
            try
            {        
            u.Urunid = id;
            u.urungetir();
            txtFiyat.Text = u.Fiyatitemizleme.ToString();
            lblUrun.Text = u.Urunadi;
            txtFiyat.Enabled = false;
            tip = "Kurutemizleme";
            pnlDigerIsim.Visible = false;
            textBox1.Clear();
            }
            catch (Exception d)
            {

                err2 er = new err2(d.ToString(), this.Name);
            }
        }
        public void utuf(int id)
        {
            try
            {

         
            u.Urunid = id;
            u.urungetir();
            txtFiyat.Text = u.Fiyatiütü.ToString();
            lblUrun.Text = u.Urunadi;
            txtFiyat.Enabled = false;
            tip = "ütü";
            pnlDigerIsim.Visible = false;
            textBox1.Clear();
            }
            catch (Exception d)
            {

                err2 er = new err2(d.ToString(), this.Name);
            }
        }
        public void boyaf(int id)
        {
            try
            {

          
            u.Urunid = id;
            u.urungetir();
            txtFiyat.Text = u.Fiyatiboyama.ToString();
            lblUrun.Text = u.Urunadi;
            txtFiyat.Enabled = false;
            tip = "Boyama";
            pnlDigerIsim.Visible = false;
            textBox1.Clear();
            }
            catch (Exception d)
            {

                err2 er = new err2(d.ToString(), this.Name);
            }
        }

        private void pardesuT_Click(object sender, EventArgs e)
        {
            temizlikf(8);
        }

        private void trencT_Click(object sender, EventArgs e)
        {
            temizlikf(9);
        }

        private void mantoT_Click(object sender, EventArgs e)
        {
            temizlikf(10);
        }

        private void kabanT_Click(object sender, EventArgs e)
        {
            temizlikf(11);
        }

        private void gomlekG_Click(object sender, EventArgs e)
        {
            temizlikf(12);
        }

        private void etekT_Click(object sender, EventArgs e)
        {
            temizlikf(13);
        }

        private void pileliT_Click(object sender, EventArgs e)
        {
            temizlikf(14);
        }

        private void elbiseT_Click(object sender, EventArgs e)
        {
            temizlikf(15);
        }

        private void abiyeT_Click(object sender, EventArgs e)
        {
            temizlikf(16);
        }

        private void tshirtT_Click(object sender, EventArgs e)
        {
            temizlikf(17);
        }

        private void kazakT_Click(object sender, EventArgs e)
        {
            temizlikf(18);
        }

        private void yunceketT_Click(object sender, EventArgs e)
        {
            temizlikf(19);
        }

        private void bluzT_Click(object sender, EventArgs e)
        {
            temizlikf(20);
        }

        private void imitasyonT_Click(object sender, EventArgs e)
        {
            temizlikf(21);
        }

        private void kravatT_Click(object sender, EventArgs e)
        {
            temizlikf(22);
        }

        private void esarpT_Click(object sender, EventArgs e)
        {
            temizlikf(23);
        }

        private void battantekT_Click(object sender, EventArgs e)
        {
            temizlikf(24);
        }

        private void battancifT_Click(object sender, EventArgs e)
        {
            temizlikf(25);
        }

        private void yorgantekT_Click(object sender, EventArgs e)
        {
            temizlikf(26);
        }

        private void yorganciftT_Click(object sender, EventArgs e)
        {
            temizlikf(27);
        }

        private void diger_Click(object sender, EventArgs e)
        {
            
            temizlikf(28);
            txtFiyat.Enabled = true;
            pnlDigerIsim.Visible = true;
        }

        private void btnPantalonU_Click(object sender, EventArgs e)
        {
            utuf(3);
        }

        private void paltoU_Click(object sender, EventArgs e)
        {
            utuf(4);
        }

        private void gelinlikU_Click(object sender, EventArgs e)
        {
            utuf(5);
        }

        private void button54_Click(object sender, EventArgs e)
        {
            utuf(6);
        }

        private void kaztuyuU_Click(object sender, EventArgs e)
        {
            utuf(7);
        }

        private void pardesuU_Click(object sender, EventArgs e)
        {
            utuf(8);
        }

        private void trencU_Click(object sender, EventArgs e)
        {
            utuf(9);
        }

        private void mantoU_Click(object sender, EventArgs e)
        {
            utuf(10);
        }

        private void kabanU_Click(object sender, EventArgs e)
        {
            utuf(11);
        }

        private void gomlekU_Click(object sender, EventArgs e)
        {
            utuf(12);
        }

        private void etekU_Click(object sender, EventArgs e)
        {
            utuf(13);
        }

        private void pileliU_Click(object sender, EventArgs e)
        {
            utuf(14);
        }

        private void elbiseU_Click(object sender, EventArgs e)
        {
            utuf(15);
        }

        private void abiyeU_Click(object sender, EventArgs e)
        {
            utuf(16);
        }

        private void thisrtU_Click(object sender, EventArgs e)
        {
            utuf(17);
        }

        private void kazakU_Click(object sender, EventArgs e)
        {
            utuf(18);
        }

        private void yunceketU_Click(object sender, EventArgs e)
        {
            utuf(19);
        }

        private void bluzU_Click(object sender, EventArgs e)
        {
            utuf(20);
        }

        private void imitasyonU_Click(object sender, EventArgs e)
        {
            utuf(21);
        }

        private void kravatU_Click(object sender, EventArgs e)
        {
            utuf(22);
        }

        private void esarpU_Click(object sender, EventArgs e)
        {
            utuf(23);
        }

        private void battantekU_Click(object sender, EventArgs e)
        {
            utuf(24);
        }

        private void battanciftU_Click(object sender, EventArgs e)
        {
            utuf(25);
        }

        private void yorgantekU_Click(object sender, EventArgs e)
        {
            utuf(26);
        }

        private void yorganciftU_Click(object sender, EventArgs e)
        {
            utuf(27);
        }

        private void digerU_Click(object sender, EventArgs e)
        {
            utuf(28);
            txtFiyat.Enabled = true;
            pnlDigerIsim.Visible = true;
        }

        private void btnTakim_Click(object sender, EventArgs e)
        {
            temizlikf(1);
        }

        private void digerB_Click(object sender, EventArgs e)
        {
            boyaf(28);
            txtFiyat.Enabled = true;
            pnlDigerIsim.Visible = true;
        }

        private void btnPantalonB_Click(object sender, EventArgs e)
        {
            boyaf(3);
        }

        private void paltoB_Click(object sender, EventArgs e)
        {
            boyaf(4);
        }

        private void gelinlikB_Click(object sender, EventArgs e)
        {
            boyaf(5);
        }

        private void kaztuyuB_Click(object sender, EventArgs e)
        {
            boyaf(7);
        }

        private void pardesuB_Click(object sender, EventArgs e)
        {
            boyaf(8);
        }

        private void trencotB_Click(object sender, EventArgs e)
        {
            boyaf(9);
        }

        private void mantoB_Click(object sender, EventArgs e)
        {
            boyaf(10);
        }

        private void kabanB_Click(object sender, EventArgs e)
        {
            boyaf(11);
        }

        private void gomlekB_Click(object sender, EventArgs e)
        {
            boyaf(12);
        }

        private void etekB_Click(object sender, EventArgs e)
        {
            boyaf(13);
        }

        private void pileliB_Click(object sender, EventArgs e)
        {
            boyaf(14);
        }

        private void elbiseB_Click(object sender, EventArgs e)
        {
            boyaf(15);
        }

        private void abiyeB_Click(object sender, EventArgs e)
        {
            boyaf(16);
        }

        private void tshirtB_Click(object sender, EventArgs e)
        {
            boyaf(17);
        }

        private void kazakB_Click(object sender, EventArgs e)
        {
            boyaf(18);
        }

        private void yunceketB_Click(object sender, EventArgs e)
        {
            boyaf(19);
        }

        private void bluzB_Click(object sender, EventArgs e)
        {
            boyaf(20);
        }

        private void imitasyonB_Click(object sender, EventArgs e)
        {
            boyaf(21);
        }

        private void kravatB_Click(object sender, EventArgs e)
        {
            boyaf(22);
        }

        private void esarpB_Click(object sender, EventArgs e)
        {
            boyaf(23);
        }

        private void battaniyeB_Click(object sender, EventArgs e)
        {
            boyaf(24);
        }

        private void battanciftB_Click(object sender, EventArgs e)
        {
            boyaf(25);
        }

        private void yorgantekB_Click(object sender, EventArgs e)
        {
            boyaf(26);
        }

        private void yorganciftB_Click(object sender, EventArgs e)
        {
            boyaf(27);
        }

        private void btnEkle_Click(object sender, EventArgs e)
        {
            // bu buton yukarıdki sepete eklenecek eklenecek elemanları seçiyor
            try
            {
                int a =Convert.ToInt32(txtAdet.Text);
                if (a<=0)
                {
                    MessageBox.Show("Adet sıfır veya sıfırdan Küçük olamaz");
                    return;
                }
               
            }
            catch (Exception)
            {

                MessageBox.Show("Adet Bölümüne Bir Rakkam Girmelisiniz!! ( Ondalık Sayı veya Harf İçeren Karakterler Kabul Edilmez");
                return;
            }
            try
            {
                if (Convert.ToDouble(txtFiyat.Text.Replace('.',','))<=0)
                {
                  MessageBox.Show("Fiyat alanına negatif bir değer girilemez");
                    return;
                }

                string fiyat = (Convert.ToDouble(txtFiyat.Text.Replace('.',',')) * Convert.ToDouble(txtAdet.Text)).ToString();
                ListViewItem list = new ListViewItem();

                //list.Text = u.Urunadi;
                list.Text = lblUrun.Text;
                list.SubItems.Add(tip); // COLUMN 1
                list.SubItems.Add(fiyat); // COLUMN 2
                list.SubItems.Add(txtAdet.Text); // COLUMN 3
                list.SubItems.Add(txtAciklama.Text);
                list.SubItems.Add(txtMarka.Text);
                list.SubItems.Add(txtRenk.Text);
                lstSepet.Items.Add(list);

                sepethesapla();
                txtAdet.Text = "1";
                txtFiyat.Text = "";
                txtMarka.Text = "";
                txtRenk.Text = "";
                lblUrun.Text="Urun Adı";

            }
            catch (Exception d)
            {

                err2 er = new err2(d.ToString(), this.Name);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (lstSepet.SelectedItems.Count > 0)
            {

                for (int i = 0; i < lstSepet.SelectedItems.Count; i++)
                {
                    int ItemIndex = lstSepet.SelectedItems[i].Index;
                    lstSepet.Items.RemoveAt(ItemIndex);

                }

            }

            sepethesapla();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            txtisim.Clear();
            txtSoyisim.Clear();
            txtTelefon.Clear();
            txtEposta.Clear();
            lblMusteriID.Text = "Musteri ID=0000" ;
        }

        public void sepethesapla()
        {
            try
            {

                s.Toplambrut = 0;
            string rakkam = "";
            string yenitext = "";
            string adet = "";
            s.Iskonto = Convert.ToDouble(txtiskonto.Text);
            for (int i = 0; i < lstSepet.Items.Count; i++)
            {
                rakkam = lstSepet.Items[i].SubItems[2].ToString();
                int bir = rakkam.IndexOf('{');
                int iki = rakkam.LastIndexOf('}');
                yenitext = rakkam.Substring(bir + 1, (rakkam.Length - (bir + 2)));
                adet = lstSepet.Items[i].SubItems[3].ToString();
                int a = adet.IndexOf('{');
                int b= adet.IndexOf('}');
                adet = adet.Substring(bir + 1, (adet.Length - (bir + 2)));
               

                s.Toplambrut += Convert.ToDouble(yenitext);
                //toplamtutar += Convert.ToDouble(yenitext) * Convert.ToDouble(adet); ( adet sayısını  ile çarpıyor)
            }

            txtNet.Text = (s.Toplambrut - ((s.Toplambrut / 100) * s.Iskonto)).ToString();
            txtBakiye.Text = s.Toplambrut.ToString() ;
           
            }
            catch (Exception d)
            {

                err2 er = new err2(d.ToString(), this.Name);
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            pnlOrta.Visible = false;
            pnlFinal.Visible = false;
        }

        private void button7_Click(object sender, EventArgs e)
        {
            if (radioButton1.Checked==false && radioButton2.Checked==false && radioButton3.Checked==false)
            {
                MessageBox.Show("Bir Ödeme Tipi Seçmelisiniz");
                return;
            }

            pnlOrta.Visible = false;
        }

        private void button92_Click(object sender, EventArgs e)
        {
            if (lstSepet.Items.Count<1)
            {
                MessageBox.Show("En az bir ürün girmelisiniz");
            }
            else if (txtisim.Text=="")
            {
                MessageBox.Show("İsim Alanı Boş Geçilemez");
            }
            else if (txtSoyisim.Text=="")
            {
                MessageBox.Show("Soyisim ALanı Boş Geçilemez");
            }
            else
            {
                pnlOrta.Visible = true;
                pnlFinal.Visible = true;
            }
      
        }

        odemedurumu o = new odemedurumu();
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            o.durumget = 2;
            s.Odemetarihi = DateTime.Now;
            pnlFinal.Visible = true;
            if (radioButton2.Checked)
            {
                radioButton2.Checked = false;
            }
            if (radioButton3.Checked)
            {
                radioButton3.Checked = false;
            }
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            o.durumget = 3;
            s.Odemetarihi = DateTime.Now;
            pnlFinal.Visible = true;
            if (radioButton1.Checked)
            {
                radioButton1.Checked = false;
            }
            if (radioButton3.Checked)
            {
                radioButton3.Checked = false;
            }
        }

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            o.durumget = 1;
            s.Odemetarihi = Convert.ToDateTime("1900-01-01");
            pnlFinal.Visible = true;
            if (radioButton2.Checked)
            {
                radioButton2.Checked = false;
            }
            if (radioButton1.Checked)
            {
                radioButton1.Checked = false;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (s.Iskonto>20)
            {
                if (comboBox1.Text=="Lütfen Referans Seçiniz")
                {
                    MessageBox.Show("Lütfen Bu İskonto için Bir Referans Belirleyiniz");
                    return;
                }             
            }

        
            try
            {
                string odemetipi2 = "";
                switch (o.durumget)
                {
                    case 1:
                        odemetipi2 = "Teslim";
                        break;

                    case 2:
                        odemetipi2="Nakit";
                        break;

                    case 3:
                        odemetipi2 = "Kredi Kartı";
                        break;
                    
                }
                //if (DialogResult.OK == MessageBox.Show("Bu Kayıt "+odemetipi2.ToUpper()+" Tipinde bir Kayıttır \n ONAYLIYORMUSUNUZ", "Teşşekkürler", MessageBoxButtons.OKCancel, MessageBoxIcon.Information))
                //{
                //    button3.Enabled = false;
                //}
                //else
                //{
                //    MessageBox.Show("Kayıt İptal Edildi");
                //    return;
                //}
   
              
                int musid;
           
            string[] dizi= lblMusteriID.Text.Split('=');
            ayarlar2 ay = new ayarlar2();
           
           
            if ( ay.Genelislemidsi == txtIslemID.Text)
            { 
              // 1.step müşteri kayıtlı değilse kaydedilecek Kayıtşıs ise idsi ile işlem yapılacak
                if (dizi[1]=="0000")
                {
                    m.sonmusteriidgetir();
                    musid = m.MusteriID + 1;
                    m.MusteriID = musid;
                    m.SistemID=0;
                    m.Isim = txtisim.Text;
                    m.Soyisim = txtSoyisim.Text;
                    m.Telefon = txtTelefon.Text;
                    m.Eposta = txtEposta.Text;
                    m.Yildiz = 5;

                    m.musterikaydet();
                   
                 
                    
                }
                else
                {
                    musid = m.MusteriID; // eski müşteridemektir
                }
             
              // 2.step siparişin toplam değeri kaydedilecek
                if (lstSepet.Items.Count>0)
                {
                 // burada sepete ürün eklenmiş demektir   

                    s.MusteriID = musid;
                    string[] sipkod = lblSipariskodu.Text.Split('=');
                    s.Sipariskodu = sipkod[1].Trim();
                    s.Teslimtipi = 1;// mağazada
                    s.Alimtipi = 1;// mağazadan
                    s.Alimtarihi = DateTime.Now;
                    s.Alimsaati = DateTime.Now.TimeOfDay;
                    s.Toplambrut = Convert.ToDouble(txtBakiye.Text);
                    s.Iskonto = Convert.ToDouble(txtiskonto.Text);
                    s.Net = Convert.ToDouble(txtNet.Text);
                    s.Referans = comboBox1.Text;
                    s.Durum = o.durumget;
                    s.sipariskaydet();


               
                    
                  
                }
                else
                {
                    // burada sepete ürün eklenmemiş demektir
                    MessageBox.Show("Ürün Sepeti Boş Geçilemez");
                }
                if (lstSepet.Items.Count>0)
                {
                    string rakkam, adet,yenitext;
                    string[] sipkod=lblSipariskodu.Text.Split('=');
                    sp.Sipariskodu =sipkod[1].Trim();
                    for (int i = 0; i < lstSepet.Items.Count; i++)
                    {
                        // fiyat bölümünü veriyor
                        rakkam = lstSepet.Items[i].SubItems[2].ToString();
                        int bir = rakkam.IndexOf('{');
                        int iki = rakkam.LastIndexOf('}');
                        yenitext = rakkam.Substring(bir + 1, (rakkam.Length - (bir + 2)));// fiyat bölümünü veriyor
                        //--------------------------

                        //urun adını veren bölüm
                  
                       rakkam = lstSepet.Items[i].SubItems[0].ToString();
                       bir = rakkam.IndexOf('{');
                       iki = rakkam.LastIndexOf('}');
                       u.Urunadi = rakkam.Substring(bir + 1, (rakkam.Length - (bir + 2)));// urunadini veren bölüm
                       u.adagoreidgetir();
                       sp.UrunID = u.Urunid;


                        //----------------------------

                        // markayı veren bölğm
                        rakkam = lstSepet.Items[i].SubItems[5].ToString();
                        bir = rakkam.IndexOf('{');
                        iki = rakkam.LastIndexOf('}');
                        sp.Marka = rakkam.Substring(bir + 1, (rakkam.Length - (bir + 2)));



                        //--------------------------

                        // Rengi veren bölüm
                        rakkam = lstSepet.Items[i].SubItems[6].ToString();
                        sp.Renk=rakkam.Substring(bir + 1, (rakkam.Length - (bir + 2)));
                        //------------------------------

                        // acıklamayı veren bölüm
                        rakkam = lstSepet.Items[i].SubItems[4].ToString();
                        sp.Aciklama = rakkam.Substring(bir + 1, (rakkam.Length - (bir + 2)));

                        desc.Add(sp.Aciklama);

                        //-----------------------------

                        // tipi veren bölüm
                        rakkam = lstSepet.Items[i].SubItems[1].ToString();
                        sp.Tip = rakkam.Substring(bir + 1, (rakkam.Length - (bir + 2)));

                        
                        
                        //------------------------------------


                        // adet bölümünüveriyor
                        adet = lstSepet.Items[i].SubItems[3].ToString();
                        int a = adet.IndexOf('{');
                        int b = adet.IndexOf('}');
                        adet = adet.Substring(bir + 1, (adet.Length - (bir + 2)));// adet bölümünü veriyor önemli
                        //-----------------------------

                        sp.Netfiyat = Convert.ToDouble(yenitext) / Convert.ToDouble(adet);
                        int ad = Convert.ToInt32(adet);
                        for (int z = 0; z< ad ; z++)
                        {
                            sp.detayekle();                         
                        } 
                        ;
                    }


                }

            
              // 3.adım ise sipariş detaylarının kaydedilmesi

              // bunların hepsi transaction mimarisi ile gerçekleşecek
            
              // daha sonra yazıcı sınıfı ayarlamaları yapılacak
             
                for (int i = 0; i < lstSepet.Items.Count; i++)
                {
                    string hane1 = lstSepet.Items[i].SubItems[0].ToString();
                    int bir = hane1.IndexOf('{');
                    int iki = hane1.LastIndexOf('}');
                    hane1 = hane1.Substring(bir + 1, (hane1.Length - (bir + 2)));

                    string hane2 = lstSepet.Items[i].SubItems[1].ToString();
                    bir = hane2.IndexOf('{');
                    iki = hane2.LastIndexOf('}');
                    hane2 = hane2.Substring(bir + 1, (hane2.Length - (bir + 2)));


                    string hane3 = lstSepet.Items[i].SubItems[2].ToString();
                    bir = hane3.IndexOf('{');
                    iki = hane3.LastIndexOf('}');
                    hane3 = hane3.Substring(bir + 1, (hane3.Length - (bir + 2)));

                    string hane4 = lstSepet.Items[i].SubItems[3].ToString();
                    bir = hane4.IndexOf('{');
                    iki = hane4.LastIndexOf('}');
                    hane4 = hane4.Substring(bir + 1, (hane4.Length - (bir + 2)));

                    // burada eklenecek satirlar konfigure edilecek
                    // --------------------------------------------                  /------
                    string bosluk1 = "";
                    string bosluk2 = "   ";
                    string bosluk3 = "   ";
                    // tipin kendi ve bosluk detaylari
                    if (hane2 == "Kurutemizleme") { hane2 = "K.Temizleme"; }
                    else if (hane2 == "Ütü") { hane2 = "Utu"; bosluk2 = "        "; }
                    else { bosluk2 = "     "; }
                    // urunun ismini netlemek
                    int hane1uzunluk = hane1.Length;
                    int bosluk1uzunluk = 18 - hane1uzunluk;
                    for (int u = 0; u < bosluk1uzunluk; u++)
                    {
                        bosluk1 += " ";
                    }
                    int hane3uzunluk = hane4.Length;

                    if (hane3uzunluk == 2) {  bosluk3 = " "; }
                    else if (hane3uzunluk == 1) {  bosluk3 = "  "; }

                    // burada hane 3 icerisinde virgul varmi kantrolu yapicaz 
                    // varsa virgul birlestirmesi yapmiyacagiz
                    int a = hane3.IndexOf(',');
                    if (a > 0)
                    {
                        

                    }
                    else 
                    {
                        hane3 = hane3 + ",00";

                    }
                    
                    string satir = hane1 + bosluk1 + hane2 + bosluk2 + hane4+" Ad."+ bosluk3 + hane3   ;

                    urunlistesi.Add(satir);

                }
                string odemetipi = "";
                if (o.durumget==1)
                {
                    odemetipi = "Teslimde Alınacak";
                }
                else if (o.durumget==2)
                {
                    odemetipi = "Nakit";
                }
                else if(o.durumget==3)
                {
                    odemetipi = "Kredi Kartı";
                }
                
                context.yaziciyagonder( s.Sipariskodu, (txtisim.Text + " " + txtSoyisim.Text), txtTelefon.Text, urunlistesi, txtBakiye.Text, txtiskonto.Text, txtNet.Text,odemetipi,desc);

                Thread.Sleep(4000);

                context.yaziciyagonder(s.Sipariskodu, (txtisim.Text + " " + txtSoyisim.Text), txtTelefon.Text, urunlistesi, txtBakiye.Text, txtiskonto.Text, txtNet.Text, odemetipi,desc);

                this.Close();
              
            }
            else
            {
                MessageBox.Show("Anahtar Değer Hatalı");
            }


            }
            catch (Exception d)
            {   
               
                err2 er = new err2(d.ToString(), this.Name);
            }
        }

        private void txtSoyisim_TextChanged(object sender, EventArgs e)
        {
            listBox1.Visible = false;
        }

        private void txtTelefon_TextChanged(object sender, EventArgs e)
        {
            listBox1.Visible = false;
        }

        private void txtEposta_TextChanged(object sender, EventArgs e)
        {
            listBox1.Visible = false;
        }

        private void txtiskonto_TextChanged(object sender, EventArgs e)
        {
            try
            {
                
                if (txtiskonto.Text != "")
                {
                   s.Iskonto = Convert.ToDouble(txtiskonto.Text);
                  

                }
                else
                {
                    s.Iskonto = 0;
                    txtiskonto.Text = "0";
                }

                if (s.Iskonto > 20 && s.Iskonto <= 100)
                {
                   comboBox1.Visible = true;
                }
                else if (s.Iskonto > 100)
                {
                    MessageBox.Show("İskonto Oranı 100 den Büyük Olamaz");
                    txtiskonto.Text = "0";
                }
                else if (s.Iskonto == 0)
                {

                }
                else
                {
                    comboBox1.Visible = false;
                }

                txtNet.Text = (s.Toplambrut - ((s.Toplambrut / 100) * s.Iskonto)).ToString();

            }
            catch (Exception)
            {
                MessageBox.Show("Lütfen Geçerli Bir İskonto Oranı Giriniz");
                txtiskonto.Text = "0";
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (textBox1.Text!=null)
            {
                lblUrun.Text = textBox1.Text;
                pnlDigerIsim.Visible = false;
                textBox1.Clear();
            }
            else
            {
                MessageBox.Show("Diğer Ürün Bölümü Mantıklı /n Bir İsim İçermelidir");
            }
            
        }

     

      

    }
}
